package com.shujia

import java.io.FileNotFoundException
import scala.io.Source

object Code39Exception {
  def main(args: Array[String]): Unit = {

    /**
     * Scala中的异常：
     *  格式：
     *   try{
     *      可能会发生异常的代码
     *      可能会发生异常的代码
     *   } catch {
     *     case  异常类型1 => {
     *        异常类型1 处理代码块
     *     }
     *      case  异常类型2 => {
     *        异常类型2 处理代码块
     *     }
     *   }
     *   finally{
     *     不管有没有错误都会执行的代码
     *   }
     *
     *   再错误中，存在有三部分的错误信息：
     *      异常名称 + 异常提示信息 + 错误位置
     *
     *   注意：
     *      对于关闭连接操作，需要放在finally中进行执行
     *
     */


    val map  = Map(("key1","value1"),("key2","value2"))


    try {
      println(map("key1"))
//      println(map("key3")) //NoSuchElementException
      println("============")
//      println(10/0)

//      Source.fromFile("file")
      if (true){
        throw new FileNotFoundException("找不到文件")
      }

    }catch {
      case e:NoSuchElementException => {
        println("发生错误...")
        e.printStackTrace()
        println("错误消息："+e.getMessage)
      }
      case file:FileNotFoundException => {
        println("捕获到手动抛出的异常"+file.getMessage)
      }
      case e: Exception => {
        println("发生错误，被捕获到...")
      }
      case e:ArithmeticException => {
        println("除数不能为零")
      }
    }finally {
      println("不管发生什么错误都会执行...")
    }



  }
}
